﻿function esFechaValida(fecha) {
    if (fecha != undefined && fecha.value != "") {
        if (!isNaN(fecha.value)) {
            alert("Formato de fecha no valido, Formato valido: dd/mm/aaaa");
            fecha.value = "";
            fecha.focus();
            return false;
        }
        if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)) {
            alert("Formato de fecha no valido, Formato valido: dd/mm/aaaa");
            fecha.value = "";
            fecha.focus();
            return false;
        }
        var dia = parseInt(fecha.value.substring(0, 2), 10);
        var mes = parseInt(fecha.value.substring(3, 5), 10);
        var anio = parseInt(fecha.value.substring(6), 10);

        switch (mes) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                numDias = 31;
                break;
            case 4: case 6: case 9: case 11:
                numDias = 30;
                break;
            case 2:
                if (comprobarSiBisiesto(anio)) { numDias = 29 } else { numDias = 28 };
                break;
            default:
                alert("Fecha no valida, Formato: dd/mm/aaaa");
                fecha.value = "";
                fecha.focus();
                return false;
        }

        if (dia > numDias || dia == 0) {
            alert("Fecha no valida, Formato: dd/mm/aaaa");
            fecha.value = "";
            fecha.focus();
            return false;
        }
        return true;
    }
}

function comprobarSiBisiesto(anio) {
    if ((anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
        return true;
    }
    else {
        return false;
    }
}

function setValueHdn(txt) {
    $get(txt.parentElement.id + "_Hidden").value = txt.value;
}

function ValidObjectDate(txt) {
    try {
        var len = txt.value.trim().length;
        if (len == 0) {
            txt.className = "validatorCalloutHighlight";
            for (j = 0; j < txt.attributes.length; j++) {
                if (txt.attributes[j].name == "errormessage") {
                    error = txt.attributes[j].value;
                }
            }
            txt.title = error == "" ? "Requerido" : error;
            return false;
        }
        else {
            txt.className = "";
            txt.title = "";
        }

        return true;
    }
    catch (e) {
        //alert(e.Description);
        return true;
    }
}

function ValidExpressionDate(obj, expression) {
    if (expression.trim() == "")
        return true;
    var RegEx = new RegExp(expression);
    var valid = RegEx.test(obj.value);

    if (!valid) {
        obj.className = "validatorCalloutHighlight";
        return false;
    }
    else {
        obj.className = "";
    }

    return true;
}